package com.milepost.workflow.flowdef.service;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.milepost.workflow.common.dto.BootstrapTableVoDto;
import com.milepost.workflow.flowdef.dto.FlowDefDto;
import com.milepost.workflow.flowdef.entity.FlowDefEntity;

/**
 * @author huarf
 * @Description
 * @create 2022-03-24 13:49
 */
public interface FlowDefService extends IService<FlowDefEntity> {

    /**
     * 创建工作流
     * @param flowDefDto
     * @return
     */
    boolean createFlowDef(FlowDefDto flowDefDto);

    /**
     * 查询流程列表
     * @param bootstrapTableVoDto
     * @param flowDefEntity
     * @return
     */
    Page<FlowDefEntity> getFlowDefList(BootstrapTableVoDto bootstrapTableVoDto, FlowDefEntity flowDefEntity);

    /**
     * 删除流程
     * @param id
     * @return
     */
    boolean deleteById(String id);

    /**
     * 查看流程
     * @param id
     * @return
     */
    FlowDefDto getFlowDefById(String id);

    /**
     * 修改工作流
     * @param flowDefDto
     * @return
     */
    boolean modifyFlowDef(FlowDefDto flowDefDto);

    /**
     * 获取流程是否有pointTask类型任务
     * @param id
     * @return
     */
    boolean hasPointTask(String id);

    /**
     * 获取流程是否有流程表单
     * @param id
     * @return
     */
    boolean hasFlowDefForm(String id);

}
